#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int n,m,k,bl[N],tn,a[N];
vector<int> p[N],t[N];
int dfn[N],low[N],cnt,o[N];
stack<int> q;
int G;
vector<pair<int,int> > ee;
vector<int> ans[N];
bool vis[N];
void tarjan(int now) {
	dfn[now]=low[now]=++cnt;
	q.push(now);
	for(int i=0;i<p[now].size();i++) {
		int to=p[now][i];
		if(dfn[to]) {
			low[now]=min(low[now],dfn[to]);
		} else {
			tarjan(to);
			low[now]=min(low[now],low[to]);
			if(low[to]==dfn[now]) {
				bl[to]=++tn;
				if(vis[to]) ++o[tn];
				while(q.top()!=to) {
					bl[q.top()]=tn;
					if(vis[q.top()]) ++o[tn];
					q.pop();
				}
				ee.push_back(make_pair(now,to));
			}
		}
	}
}
signed main(){
	//freopen("travel.in","r",stdin);
	//freopen("travel.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m>>k;
	int u,v;
	for(int i=1;i<=m;i++) {
		cin>>u>>v;
		p[u].push_back(v);
		p[v].push_back(u);
	}
	for(int i=1;i<=k;i++) {
		cin>>a[i];
	}
	for(int i=1;i<=n;i++) if(!dfn[i]) {
		ee.clear();
		tn=0;
		tarjan(i);
		for(int j=0;j<=tn;j++) t[j].clear();
		for(int j=0;j<ee.size();j++) {
			t[ee[j].first].push_back(ee[j].second);
			t[ee[j].second].push_back(ee[j].first);
		}
		
		for(int j=0;j<=tn;j++) o[j]=0;
	}
	return 0;
}

